GValue *value,
GParamSpec *pspec)
{
- GtkGestureLongPressPrivate *priv;
-
- priv = gtk_gesture_long_press_get_instance_private (GTK_GESTURE_LONG_PRESS (object));
-
switch (property_id)
{
case PROP_DELAY_FACTOR:
- g_value_set_double (value, priv->delay_factor);
+ g_value_set_double (value, gtk_gesture_long_press_get_delay_factor (GTK_GESTURE_LONG_PRESS (object)));
break;
default:
const GValue *value,
GParamSpec *pspec)
{
- GtkGestureLongPressPrivate *priv;
-
- priv = gtk_gesture_long_press_get_instance_private (GTK_GESTURE_LONG_PRESS (object));
-
switch (property_id)
{
case PROP_DELAY_FACTOR:
- priv->delay_factor = g_value_get_double (value);
+ gtk_gesture_long_press_set_delay_factor (GTK_GESTURE_LONG_PRESS (object),
+ g_value_get_double (value));
break;
default:
P_("Delay factor"),
P_("Factor by which to modify the default timeout"),
0.5, 2.0, 1.0,
- G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY));
/**
* GtkGestureLongPress::pressed:
return g_object_new (GTK_TYPE_GESTURE_LONG_PRESS,
NULL);
}
+
+/**
+ * gtk_gesture_long_press_set_property:
+ * @gesture: A #GtkGestureLongPress
+ * @delay_factor: The delay factor to apply
+ *
+ * Applies the given delay factor. The default long press time will be
+ * multiplied by this value.
+ * Valid values are in the range [0.5..2.0].
+ */
+void
+gtk_gesture_long_press_set_delay_factor (GtkGestureLongPress *gesture,
+ double delay_factor)
+{
+ GtkGestureLongPressPrivate *priv = gtk_gesture_long_press_get_instance_private (gesture);
+
+ g_return_if_fail (GTK_IS_GESTURE_LONG_PRESS (gesture));
+ g_return_if_fail (delay_factor >= 0.5);
+ g_return_if_fail (delay_factor <= 2.0);
+
+ priv->delay_factor = delay_factor;
+
+ g_object_notify (G_OBJECT (gesture), "delay-factor");
+}
+
+/**
+ * gtk_gesture_long_press_get_property:
+ * @gesture: A #GtkGestureLongPress
+ *
+ * Returns the delay factor as set by gtk_gesture_long_press_set_delay_factor().
+ */
+double
+gtk_gesture_long_press_get_delay_factor (GtkGestureLongPress *gesture)
+{
+ GtkGestureLongPressPrivate *priv = gtk_gesture_long_press_get_instance_private (gesture);
+
+ g_return_val_if_fail (GTK_IS_GESTURE_LONG_PRESS (gesture), 0);
+
+ return priv->delay_factor;
+}